### Godot version

4.0 d93b66a

### System information

Windows 10 x64

### Issue description

I have a 2D scene with some 3D nodes. The root is node 2D, most nodes are 2D, I have 2D node selected. When I switch scene tab and back, the editor switches to 3D view, even though the 2D node is still selected.

I managed to strip the scene to bare minimum. You need a Node3D with Camera3D and DirectionalLight3D children.

https://user-images.githubusercontent.com/2223172/213327465-ba07760e-6dab-43c0-96e8-5109fcc0a576.mp4


### Steps to reproduce

1. Make 2D scene
2. Add some 3D
3. This bug has a chance to happen
4. Check the repro for setup that reproduces the issue

### Minimal reproduction project

[3DBug.tscn.txt](https://github.com/godotengine/godot/files/10452297/3DBug.tscn.txt)

menu_hb = memnew(EditorTitleBar);
	main_vbox->add_child(menu_hb);
	left_l_hsplit = memnew(HSplitContainer);
	main_vbox->add_child(left_l_hsplit);
	left_l_hsplit->set_v_size_flags(Control::SIZE_EXPAND_FILL);
	left_l_vsplit = memnew(VSplitContainer);
	left_l_hsplit->add_child(left_l_vsplit);
	dock_slot[DOCK_SLOT_LEFT_UL] = memnew(TabContainer);
	left_l_vsplit->add_child(dock_slot[DOCK_SLOT_LEFT_UL]);
	dock_slot[DOCK_SLOT_LEFT_BL] = memnew(TabContainer);
	left_l_vsplit->add_child(dock_slot[DOCK_SLOT_LEFT_BL]);
	left_r_hsplit = memnew(HSplitContainer);
	left_l_hsplit->add_child(left_r_hsplit);
	left_r_vsplit = memnew(VSplitContainer);
	left_r_hsplit->add_child(left_r_vsplit);
	dock_slot[DOCK_SLOT_LEFT_UR] = memnew(TabContainer);
	left_r_vsplit->add_child(dock_slot[DOCK_SLOT_LEFT_UR]);
	dock_slot[DOCK_SLOT_LEFT_BR] = memnew(TabContainer);
	left_r_vsplit->add_child(dock_slot[DOCK_SLOT_LEFT_BR]);
	main_hsplit = memnew(HSplitContainer);
	left_r_hsplit->add_child(main_hsplit);
	VBoxContainer *center_vb = memnew(VBoxContainer);
	main_hsplit->add_child(center_vb);
	center_vb->set_h_size_flags(Control::SIZE_EXPAND_FILL);
	center_split = memnew(VSplitContainer);
	center_split->set_v_size_flags(Control::SIZE_EXPAND_FILL);
	center_split->set_collapsed(false);
	center_vb->add_child(center_split);
	right_hsplit = memnew(HSplitContainer);
	main_hsplit->add_child(right_hsplit);