How can I solve this shadow problem?
It's the normals. to fix it I can suggest 2 ways, average the borderline normals with an add-on or just replace normals.
Here is how you can replace normals:
before separation, copy your object and hit f2 and call it &quot;my.normal.source.01&quot; or anything.
hide it
on original model, do the separation.
add a modifier in the end of stack of original object and named &quot;Data Transfer&quot;


select the source (we called it in this example &quot;my.normal.source.01&quot;)
mix mode to Replace

do the same for the lid
Done.
Now if you want to move the object your source have to move with it you can parent it. if you don't like that just apply the Data Transfer modifier. that will write normal data into your object.