### Godot version

Master (4.2)

### System information

Windows 11 - Vulkan - Nvidia RTX 4070 - intel i5 13600KF

### Issue description

As you can see in the video when you try to add multiple scenes in to the 3D viewport (only with multiple scenes) the editor throws this error.

```
ERROR: Can't add child '@Node3D@18837' to '@SubViewport@9274', already has a parent '@SubViewport@9274'.
   at: (scene\main\node.cpp:1411)
```


Video: https://youtu.be/BVcCIigQJDw

This happens in the latest master (pulled on 2.11.2023).

### Steps to reproduce

Drag couple of the 3d mesh scenes into the 3D viewport and then select multiple scenes and drag them over and observer the error.

### Minimal reproduction project

[TestSceneDragAndDrop.zip](https://github.com/godotengine/godot/files/13253741/TestSceneDragAndDrop.zip)

Vector3 hitpos = gt.xform(rpos);
				const real_t dist = world_pos.distance_to(hitpos);
				if (dist < 0) {
					continue;
				}
				if (dist < closest_dist) {
					closest_surface = surface_idx;
					closest_dist = dist;
				}
			}
		}
		if (closest_surface == -1) {
			return false;
		}
		if (spatial_editor->get_preview_material() != mesh_instance->get_surface_override_material(closest_surface)) {
			spatial_editor->set_preview_material_surface(closest_surface);
			spatial_editor->set_preview_reset_material(mesh_instance->get_surface_override_material(closest_surface));
			mesh_instance->set_surface_override_material(closest_surface, spatial_editor->get_preview_material());
		}
		return true;
	}
	GeometryInstance3D *geometry_instance = Object::cast_to<GeometryInstance3D>(target_inst);
	if (geometry_instance && spatial_editor->get_preview_material() != geometry_instance->get_material_override()) {
		spatial_editor->set_preview_reset_material(geometry_instance->get_material_override());
		geometry_instance->set_material_override(spatial_editor->get_preview_material());
		return true;
	}
	return false;
}
void Node3DEditorViewport::_reset_preview_material() const {