How to loop through page data and output it to a parent page

I have a folder called “products”, it contains 2 x sub-folders called “dogs” and “cats”. Each of the sub-folders contain multiple pages.

I want to loop through the pages in the dog folder and output data to a page, then loop through the cats folder and out put the data as a separate section on the same page.

I know if I use

{{ range  .RegularPagesRecursive }}

I can output everything to the page, is there way modify this to achieve what I need?
I’ve also tried

{{range where .Site.RegularPages "Section" "dogs"}}

and

{{ $dogs := site.GetPage "dogs" }}

{{ range $dogs.RegularPages }}

Plus a ton of other guesses! Nothing works.

Any help / suggestions woud be greatly appreciated.

structure

content/
├── products/
│   ├── cats/
│   │   ├── cat-1.md
│   │   ├── cat-2.md
│   │   ├── cat-3.md
│   │   └── _index.md  # identifies directory as a section
│   └── dogs/
│       ├── dog-1.md
│       ├── dog-2.md
│       ├── dog-3.md
│       └── _index.md  # identifies directory as a section
└── _index.md

template

{{ range (site.GetPage "products").Sections.ByTitle.Reverse }}
  {{ range .Pages }}
    <h2><a href="{{ .RelPermalink }}">{{ .Title }}</a></h2>
  {{ end }}
{{ end }}