If a full virtual address is 32 bits, and page size is 2KiB (or 2^11 bytes), the page offset is, as you calculated, 11 bits. That leaves 21 bits remaining in the address to be the virtual page number.
For the number of translation tables, the key piece of information is "page tables (of all levels) are exactly page-frame sized." If a page is 2^11 bytes and an entry is 8 (or 2^3) bytes, each table holds (2^11)/(2^3) = 2^8 PTEs. To have a unique index for every entry in a table of this size, you need an 8-bit index.
Usually, a full virtual page number is split up into indexes into the page table at various levels like this:
[ ---------- Full VPN ---------- ] [ Page Offset ]
==
[ VPN 1 ] [ VPN 2 ] ... [ VPN N ] [ Page Offset ]
Where VPN N is the index into the Nth level of the page table.
For example, in a three level page table, VPN 1 is the index in the first-level page table (where each "entry" points to the location of a second-level page table), VPN 2 is the index in the second-level page table (where each entry points to the location of a third-level page table), and VPN 3 is the index in the third-level page table, where each entry will give you (perhaps among other information) a physical page number.
The setup you detailed is a bit unclear in how many bits are part of VPN 1, VPN 2, and VPN 3. You might expect each to be 8 bits given the number of PTEs that fit into a page, but there are only 21 total bits. It would be workable to have VPN 1 be bits 0-7 of the virtual page number (8 bits), VPN 2 be bits 8-15 (8 bits), and VPN 3 be bits 16-20 (5 bits). Here, you use the full first and second level table but only part of each third-level page table. It would also be workable if VPN 1, 2, and 3 were each 7 bits. Here, every level would use just half of the table.
Regardless, with 21 virtual page number bits and page-frame sized tables, 3 levels is the minimum required, since the index for each level is at most 8 bits. If there were 27-bit addresses and 16-bit virtual page numbers, only 2 levels would be necessary; a bigger virtual address space with 36-bit addresses and 25-bit virtual page numbers would need four levels.
To sum all of that up, as far as a formula for the minimum number of levels needed, I'd use:
(virtual page number bits) / (PTEs per page table), going up to the next whole number when this isn't a whole number. So here, 21 / 8 = 2.625 ==> 3 levels.