I think you are misusing Sub-reports. In Crystal Reports (7+), Sub-reports should be used to data in the report that is related to the primary query, but that you may not want to "Join" in with your primary dataset, for performance reason or otherwise.
I use sub-reports to include a list of records that are 1:M to the current row, but I want to show them in the detail section without adding a group to my report.
In your case, it seems that you have different classification of fields in your Product table and you want to show them "grouped" together relatively. I would suggest creating multiple details sections and perhaps drawing some lines in the report to separate and differentiate the sections of data.
That said, you CAN create a report with 3 sub-reports for this, but you would be essentially taking the long way to load each product in your set 4 times (once for the primary report and the once per sub).
Let me know if there are questions.