The simplest option imo is to use the flexibility of par.txt. But this will only work if the sym domains in each hdb are custom and distinct and if you can create 3 new folders, one being the root of the ‘new’ hdb, and two being folders containing just the partitions from the physical hdbs (these can be softlinks which makes things easier).
If possible, then create 2 folders, lets say u and c, and softlink all the partitions from each physical hdb to new folders, ie. usa -> u, can -> u.
Then create another folder, lets say h, this will be the root hdb that you physically load, and softlink the sym files from usa and can to the root of this folder (hence why they need to be distinctly named).
Finally create a par.txt file here and add 2 paths to it, each path pointing to the paths of u and c.
You can now load this new folder as if it were both hdbs in one (of course there are many things to think about when querying/disk io etc, but that can be omitted from this thread).
Another approach is to use some helper functions created by Andrey Kozyrev. If you are an enterprise user you can visit the listbox and see a post from him where he explains how to load multiple dbs into one q process which has its niceties