This is what the address list shortcode and Gutenberg block produces. You can set how many records are visible on each page. You can also add loggedin=false if you really want to break data protection laws!
[church_admin type=”address-list” member_type_id=1,2 map=1 loggedin=FALSE photo=1]
member_type_id specifies which member levels are shown
map=1 shows the map if you have a Google API key
photo=1 shows photos where they have been uploaded