All three are named Object3.
My best guess, in pseudocode, as to why it's happening:
define obj as ScriptObject
set name to object1
define subobj ScriptObject
set name to object2
define subsubobj as ScriptObject
set name to object3
apply name to object
apply name to object
apply name to object