code: def custom_sized_subplots():
      fig = make_subplots(
          rows=5,
          cols=2,
          specs=[
              [{}, {"rowspan": 2}],
              [{}, None],
              [{"rowspan": 2, "colspan": 2}, None],
              [None, None],
              [{}, {}],
          ],
          print_grid=True,
      )
  
      fig.add_trace(
          go.Scatter(x=[1, 2], y=[1, 2], name="(1,1)"), row=1, col=1
      )
      fig.add_trace(
          go.Scatter(x=[1, 2], y=[1, 2], name="(1,2)"), row=1, col=2
      )
      fig.add_trace(
          go.Scatter(x=[1, 2], y=[1, 2], name="(2,1)"), row=2, col=1
      )
      fig.add_trace(
          go.Scatter(x=[1, 2], y=[1, 2], name="(3,1)"), row=3, col=1
      )
      fig.add_trace(
          go.Scatter(x=[1, 2], y=[1, 2], name="(5,1)"), row=5, col=1
      )
      fig.add_trace(
          go.Scatter(x=[1, 2], y=[1, 2], name="(5,2)"), row=5, col=2
      )
      return fig
  
file_path: plotly.py/packages/python/plotly/plotly/tests/test_optional/test_autoshapes/test_axis_span_shapes.py
imports: import plotly.graph_objs
  from plotly.subplots import make_subplots
  from plotly.basedatatypes import _indexing_combinations
  import plotly.express
  import pytest
  from .common import _cmp_partial_dict, _check_figure_layout_objects
label_desc: Use image node_id 4 for calling a global function with example usage: custom_sized_subplots() and returns: fig