PySide6

from PySide6 import QtCore, QtGui, QtWidgets

import maya.cmds as cmds
from maya import OpenMayaUI as omui 

from shiboken6 import wrapInstance

def get_main_window():
    """ Mayaのメインウィンドウを取得 """
    ptr = omui.MQtUtil.mainWindow()

    if ptr is not None:
        return wrapInstance(int(ptr), QtWidgets.QWidget)

class MyWidget(QtWidgets.QMainWindow):
    def __init__(self, parent=None):
        super().__init__(parent)

        """ Close Panel """
        main_window = get_main_window()
        for child in main_window.children():
            if child.__class__.__name__ == self.__class__.__name__:
                child.close()

PySide6 PySide2対応版

try:
	from PySide6 import QtCore, QtGui, QtWidgets
except:
	from PySide2 import QtCore, QtGui, QtWidgets

import maya.cmds as cmds
from maya import OpenMayaUI as omui 

try:
    from shiboken6 import wrapInstance
except:
    from shiboken2 import wrapInstance

def get_main_window():
    """ Mayaのメインウィンドウを取得 """
    ptr = omui.MQtUtil.mainWindow()

    if ptr is not None:
        return wrapInstance(int(ptr), QtWidgets.QWidget)

        
class MyWidget(QtWidgets.QMainWindow):
    def __init__(self, parent=None):
        super().__init__(parent)

        """ Close Panel """
        main_window = get_main_window()
        for child in main_window.children():
            if child.__class__.__name__ == self.__class__.__name__:
                child.close()