Address space is large enough unless we do something seriously fucked up. The IPv6 adress space has enough Ip-adresses that every atom of the surface of the earth can have 40.000 adresses.
Or, to divide it up a bit:
A "local network" will probably get a /64. This is *enough*, trust me, it's so much addresses that it can comtain the entire ipv4 address space - SQUARED. Noone will ever need more adresses than that in a local network.
A typical "end site" (a company, or even maybe a home user) would probably get a /48, or 65536 local networks. Again, *enough*.
An ISP would very often have one or perhaps several /32s. That means it can have 2^16 = 65536 "customers" who each have enough ip-adresses.
However, there are recommendations to limit the assignments for "home" users to /56. This makes for only 256 local networks in your home.
So if an ISP has a /32, we can imagine the following example:
Half of it, that is a /49, is allocated in /48 networks, allowing for 32768 corporate customers.
The other half of it is allocated in /56s, allowing for 32768*256 = 196608 home users.
Currently, one /3 is allocated to global unicast adress space. This gives space for 2^(32-3)=2^29 = roughly 534 million ISP allocations. Or, in another word, approximately one ISP per 10th of todays inhabitants in the world.
There are several /3s not yet allocated.
I guess there is enough.