I think the problem is that the current profit margins of all three are so incredibly huge, that if any of the three were to trigger a price war, prices have so much room to fall that they would ALL lose far more money than any of them could possibly gain via any increase in market share that they would get from dropping prices. If current profit margins were lower then there might just have been an incentive for one of them to try a price war, but as it stands now there is a kind of "Mutually Assured Massive-loss-of-profits" that creates a kind of de-facto "price-fixing" stand-off, even if there isn't explicit price-fixing going on. I.O.W. all three understand that if any one of them starts a "price-war" box, they all lose profits. Also, for whatever reason (bribery?) government seems to have no intention of introducing new competitors, so they can all just relax and rake it in.
I think the solution is obvious - issue several more licenses. Say, three new licenses, one a year for the next three years, creating a threat of unknown new entrants. Why can a small & poor country like Malawi support six cellular providers -- we've been duped into thinking that South Africa can't support more than three.