You could leverage domain analysis to model your microservices. Based on this, you would have 4 microservices (function apps in this case) - one each for order, catalog, account, and promos.
You can read more about Building Microservices on Azure in the Azure Architecture Center docs.
Coming to your questions on code structure, a single solution with projects for each microservice and a common project for shared code would be ideal. So, a total of five projects, at the least.
This approach would enable code reuse as required between the function apps. And for a single entry point, you could front your function apps with Azure APIM.