Earlier quoted context omitted.
All global IPv6 addresses start with 2. This is by design. Pedantically, 3 is also reserved for global. Some other prefixes are also reserved, like fd for the ULA (local) range. The point of IPv6 was to make the addresses so long they are easy to manage.
The point of IPv6 was to make the addresses so long that we don't run out of them in 20 years or so. There fixed that for you.
64 bits would be enough to avoid run out, but hierarchical allocation would still be a problem. 128 bits is long enough for many levels of hierarchy. (And yes, you can subnet all the bits, not just the first 64)