Permanently expanded submenu in pie menu
All the credit goes to iceythe
discussion thread
If you just want the menu items expanded, just like your manual column of operators:
col1 = pie.column()
col1.menu_contents(&quot;CUSTOM_MT_submenu&quot;)

Panels, like menus are just draw functions. You can funnel them through any layout.
You can use something like this to pass as override layout:
class Layout:
    def __init__(self, layout):
        self.layout = layout

then
col2 = pie.column()
override = Layout(col2)
bpy.types.OBJECT_PT_display.draw(override, context)

context.armature doesn’t exist outside of properties, so you must generate a new context and manually add armature to it.
Good news is, the procedure is same as with the layout override. Adding a check to emulate a poll is a good idea since drawing the panel yourself circumvents the original one. The bad news is, well, there are no bad news.
class Context(dict):
    def __init__(self, context=None, **kwargs):
        super().__init__()
        self.__dict__ = self

        if context is not None:
            self.update(context.copy())
        self.update(**kwargs)

Then draw the armature panel like this:
if context.object.type == 'ARMATURE':
    context_ = Context(context, armature=context.object.data)
    col3 = pie.column()
    override = Layout(col3)
    bpy.types.DATA_PT_display.draw(override, context_)

Custom operators no longer go into bpy.types. Instead you reference the class itself:
col4 = pie.column()
override = Layout(col4)
CUSTOM_OT_operator.draw(override, context)