Because its very hard to make reliable peer-to-peer apps. Phones are not always reachable easly on the same ip address. They move around, they are sometimes offline, sometimes they have high latency, the network drops most packages, they have limited space and computational power.
To deliver a message they both need to be online at the same time. For group messages you need to be very clever to get it working when only part of the people are online. The key destribution is also extreamly difficulte.
So lots of problem for very little gain.
What would be smart is to have a federated architecture so people can host their own servers and that would solve PART of the same problems, pure peer-to-peer would solve. Actor is devloping in this direction, and they want to get it working with Signal protocol, Signal itself would probebly do it as well if they had the manpower.