No. It isn't a common way in git. Generally speaking, the master branch (main if you like github newest nomenclature) contains the dev code, on top. Other branches (what you called "short term branches") should be created in order to apply fixes/changes/improvements (huge refactoring, if needed) starting from code available on master branch. In this way, you will be able to merge the branches on top of the master branch via pull request (and/or merge requests, here, again, if you use gitlab and prefer it's nomenclature). This is the common way to work in git.
Nobody can say that you mustn't create a "Sub-project1" and "Sub-project2" branches for storing files that are not related to the "Main project". But, what if, for some reason, you need to use, those files, in another project located in a different git repo? What if "Sub-project1" contains a tool you need? Should you download the entire repo (it may became huge... GBs), switch the branch, pull the file? ok, git partial clone, sparse checkout, etc... may help, but, isn't better to avoid this complexity by designing a better repo from the beginning keeping everything in order?
So, after this preamble, I think that another git repo with its own branches fits good in your case, instead of branches "Sub-project1" and "Sub-project2". If you need to integrate, in the future, something coming from "Sub-project1", into another project (including the "Main-Project") you may use the git submodules. They should be used carefully, but they are useful in a lot of circumstances.