Added new role with custom capability. But cannot access the page

Apart from what I said in the comments — adding new roles should not be done on every (admin) init (here’s why), your code is actually good, but your post type is set to show under the custom admin menu named “Price Calculator” (see the 'show_in_menu' => 'my-menu' in your post type arguments), so you’d want to either add the manage_options capability to specific users like the one in question, or lower the capability required to access that menu, e.g.

// I changed the 3rd parameter from manage_options to edit_prices.
add_menu_page('My Page Title', 'Price Calculator', 'edit_prices', 'my-menu', 'show_price', 'dashicons-calculator', '13');