Yes, you can do this with three repeaters–one per list. Apply filters to change which values/rows are shown. So, if the selected value of list 1 determines which rows are shown in list 2, then the datasheet for list 2 needs to include all the possible rows for any selection from list 1–but only a portion of which would be shown for any selected item.
Depending on the taxonomy of your set–lists 1, 2, and 3–the solution can be pretty simple or quite complex. For instance, are the parent-child relationships exclusive or overlapping? Can multiple items be selected from a list?
As a basic example, look at the classification system in Biology. Limiting the scope for demonstration here, the first 3 lists would be Kingdom, Phylum, Class.
List 1, Kingdom, could have a datasheet with one column and a row for each kingdom, e.g., Animalia, Plantae, Protista, (etc.).
List 2, Phylum, would need at least two columns: one to represent which kingdom (parent) the phylum name belongs, and one to represent the name of the phylum (child), e.g.,
Column1 | Column2
Animalia | Arthropods
Animalia | Molluscs
Animalia | Chordates
Animalia | etc.
…
Plantae | Anthocerotophyta
Plantae | Bryophyta
Plantae | Charophyta
Plantae | etc.
…
Protista | Amoebozoa
Protista | Bigyra
Protista | etc.
List 3, Class, could have 3 columns, like:
Column1 | Column2 | _Column3
Animalia | Arthropods | Insects
Animalia | Arthropods | Crustaceans
Animalia | Arthropods | etc.
Animalia | Molluscs | Gastropods
Animalia | Molluscs | Bivalves
Animalia | Molluscs | etc.
Animalia | Chordates | Cyclostomates
Animalia | Chordates | Vertebrates
Animalia | Chordates | etc.
…but the “kingdom” column would not be absolutely necessary, because a row with an Arthropod would by definition be within Anamalia.
So, if a user selects “Animalia” from List 1, it would apply a filter to List 2 with a rule something like, [[TargetItem.Column1 == Item.Column1]]
If your second or third list gets too long or unwieldy, you could split it into multiple repeaters. Put each “sub-list repeater” in separate state of a dynamic panel. For instance, List 2, Phylum could have DP with state for Animalia, Plantae, Protista, etc. Then, instead of filtering one list, just change the DP state.