A duplicate of this question, Emptying buckets by moving pebbles around, was asked (and, interestingly, received a lot more upvotes than this one). Before Brian pointed out that it was a duplicate, I came up with a solution different from the shortlist solution. (I treat the problem of emptying one of the piles, which, as discussed in Phira's answer and comments, is equivalent.)
The idea is to successively produce $0$s in the binary representations of two of the numbers, starting with the least significant bit. So assume that the last $k$ bits of $b$ and $c$ are already zero; then if neither $b$ nor $c$ is zero yet, our aim is to make the last $k+1$ bits of two of the numbers zero.
So consider the $(k+1)$-th bits of $b$ and $c$. If they're both $0$, we're done. If they're both $1$, we just need one transfer between $b$ and $c$ to make them both $0$. If one is $0$ and one is $1$, we can put the $1$ in the lesser of the two by transferring from the greater to the lesser until it becomes the lesser.
Without loss of generality, assume $b\lt c$. Now there are two cases. If $a\ge b$, we can get rid of the $1$ by a transfer from $a$ to $b$. Otherwise, $a\lt b\lt c$, and we transfer first from $b$ to $a$ and then from $c$ to $b$, thus going from $a,b,c$ to $2a,b-a,c$ to $2a,2(b-a),c+a-b$. Now the sum of the first two numbers is $2b$, which has $0$s in the last $k+1$ bits, so we can make the last $k+1$ bits of those two numbers $0$ by making transfers between them, each of which gets rid of their last $1$ bits.
If we initially assign $a$, $b$ and $c$ such that $a$ has the fewest final zeros, this strategy seems to be slightly more efficient than the shortlist strategy: Compared to the total of $103505$ transfers minimally required to solve all distinct instances with totals less than $100$, this strategy makes $172865$ transfers while the shortlist strategy makes $190994$.