AuraDB instances run with a set defined maximum of connections.
This is done to contain the memory usage (and protect the AuraDB Instance) dedicated to implementing the network resources (threads) necessary to handle these individual connections.
Should you have some application in an environment or framework designed for scaling you should consider that value carefully.
But if you need to have multiple drivers for architectural/technical reasons then you will need to reduce the default connection pool setting for each driver configuration so as to avoid overwhelming your AuraDB instance.
Having a scale factor of 16, and 400 connections to share you should at most use 400 / 16 = 25
driver = GraphDatabase.driver(