You are so close here.
Change your relationships like this:
Parts::PartID = Sub_Parts::Sub_part_partid_fk //have this one already
Parts 2::PartID = Sub_Parts::Sub_PartID_fk
Parts and Parts 2 should be table occurences of the same data source table.
Now place a portal to sub_parts on your parts layout and include any fields you need from parts 2 inside the portal to list all sub parts for any given parts record. Using your example, sunglasses would list one sub_part, lenses, qty 2. While the Lenses part record will show an empty portal.
Genius! (at least to me).
Thank you! It worked!
Now on to the next step! (to show what part a part is a sub part of)
A layout based on Parts 2 can use a portal to sub_parts to do that.