There’s zero reason why you have to make all calls cost some money to stop this problem. You can absolutely distinguish between a single person making a call, and a company doing mass robocalling.
Besides, who is to say that corrupt companies like AT&T and Verizon wouldn’t just cut a rate deal with these robo callers where they get calls cheaply, but then the average American gets fucked over with full-priced calls?
Pricing is not the solution to this.
What is the solution is similar laws like those required for opening a checking or savings account. Registering for a phone number should be a big deal and they should not be given out so freely.
This means a company engaged in spamming robocalls from a number can have that number shut down, and will have a harder time applying for a new number because of all the documentation they need to prove they are legitimate.
Phone companies can also place limits on the number of calls that can be made from a single number, and can have a more thorough vetting process for legitimate companies that do need to make large numbers of calls.