Only slightly late to this but I disagree with everyone else.
Your colleague was also wrong, although did raise an important point without probably realising.
It’s better to have a db per application if they’re all independent. However, scalability comes into play.
Connection pool(s) are not scalable. Consider 50 tcp connection (divide that into x pools it’s irrelevant, it’s still 50 connections) in an application that’s clustered.
If you spin up 10 instances during a load spike, you now have 500 tcp connections.
Imo you have the correct design approach of 1 db per app. However ensure your apps use clustered (distributed) connection pools, and ensure your db is clustered. Both db and app should sit behind a load balancer to distribute traffic.