Thanks Eric, I am using the thrid option in your list. Now my doubt is, what would be a preferred approach out the of the two mentioned below. These are based on my research in last couple of weeks, there is a high chance that these way not even be correct and there could be even better and more streamlined approach.
1) Using an edit form and tweak the fields to point to the parent record. i.e. in my case Project is the Child entity and will be hosting the embedded canvas app and Opportunity is the Parent Entity. On the canvas app when i insert a edit form, i automatically get a list of fields from the Project entity, but dont have an option to add Opportunity fields, hence i will have to tweak the Project entity fields and point them to Opportunity (Still figuring out how).
2) Start with a blank edit form and add all the fields along with their data type and then figure out a way to populate the fields on load and then store the fields values as those are edited on some collection and save it when submit button is pressed using patch function.
In both the cases i would add two data sources i.e. Project and Opportunity tables from Dataverse.