Use different “databases” besides public at the very start. No joins between them. You will be in a good position to just split the postgres instance by those at a later date. They will have different usage patterns than the merged version you have now, and will be easier to optimize and will buy you some time. And time is all you need.
"public" is not a database, it is a schema within a database.
apropos bad naming, postgresql authors are not forgiven for naming all the databases on a single host a "cluster". I mean __really__.