You can always do this. Take any $b$ and define $d = p_2 b$. Then $b' = (p_1, d)$ is equivalent to the original $b$. To see this note that
$$(p_1, m) \circ b = (p_1b, m \circ (p_1 b, d)) \simeq id = (p_1, p_2) $$
The first component shows $p_1 b \simeq p_1$. We use this transformation $\times id$ to show that $b \simeq b' = (p_1, d)$.
Now we consider the equivalence $(p_1, m) \circ b' \simeq id$. Here we have,
$$(p_1, m) \circ (p_1, d) = (p_1, m \circ (p_1, d)) \simeq id = (p_1, p_2) $$
restricting to $G = G \times \{ 1\} \subseteq G \times G$, this gives a natural isomorphism $m(x, d(x, 1)) \simeq 1$. You can take $i(x) = d(x,1)$, and we have $x i(x) \cong 1$.
We also have
$$(p_1, d) \circ (p_1, m) = (p_1, d \circ (p_1, m)) \simeq (p_1, p_2) $$
which gives a natural isomorphism, $ d(x, xy) \simeq y$ (writing $m(x,y) = xy$). Thus we have,
$$d(x,y) \simeq d(x, x i(x) y) \simeq i(x) y, $$$$d(x,y) \simeq d(x,1 y) \simeq d(x, x i(x) y) \simeq i(x) y, $$
which is basically the formula you were after. So we can replace $d(x,y)$ with $m(i(x), y)$ to get a third inverse functor b''. Note that this doesn't mean that we have a strict 2-group, just that we can define the inverse functors and difference functors you asked about.
Notice also that we didn't really use anything about G being a 1-category as opposed to an n-category (except the associator and unitors) so this argument generalizes to the n-group setting basically verbatim.