You could try compiling them separately as .pdz
And then use playdate.file.load()
to get their contents at runtime
https://sdk.play.date/inside-playdate/#f-file.load
Also see @Nic's Hot Load Plugin Manager
https://devforum.play.date/t/splitting-a-game-into-several-functional-binaries-nics-plugin-manager/1387/5