Make three menus with three category levels

wp_list_categories(); will by default give you a hierarchically nested list of all your categories. Hiding and showing that list, or parts of it, is just a matter of CSS. That sounds like what you need. For example

echo '<ul class="my-cats-list">',wp_list_categories(),'</ul>';

// style rules; put in your theme's style.css
.cat-item {
  padding-left:5px;
}
.children {
  display:none;
}
.cat-item:hover>.children {
  display:block;
}

That is very minimal but does work.