If I remember correctly, this is how you do it:
1. Create a new empty repo for the monorepo
2. For each repo, 'git mv' all of the contents into a new directory with the repo's name
3. Add the repos to the mono repos as remotes
4. Run 'git merge --allow-unrelated-histories' for each repo
You will now have a monorepo with preserved history with each old repo existing inside of a sub-directory in the new monorepohttps://github.com/josh-project/josh
It's designed for making multiple Git repos from a monorepo, but I think you should be able to make a skeleton repo that represents your desired final monorepo layout and push your individual repos to the Josh subviews of that repo to combine them all.
(A big advantage of this approach over the multiple unrelated histories is that you don't have the mass move commits since Josh will rewrite all history as if the files were always in that folder, so you don't have to worry about history of individual files getting broken.)
I did a quick google and these instructions seem about right (without the delete step): https://gist.github.com/msrose/2feacb303035d11d2d05