Automate the Boring Stuff Chapter 8 Sandwich Maker
PEP8
The &quot;PEP 8 -- Style Guide for Python Code&quot; has many recommendations on how programs should be written, for maximum understandability between programmers.
Variable Names
The one that you violate the most relates to variable naming.  PEP8 recommends snake_case for all variables.  So customerOrder should be customer_order, sandwichTotal should be sandwich_total, etc.
Constants
Constants, things which never change, should be named using UPPERCASE or UPPERCASE_WITH_UNDERSCORES.  Therefore, optionPrices should be OPTION_PRICES.
White Space
PEP-8 recommends no space between a diction key and the :.
Encapsulate Data into Containers
optionPrices contains breads, proteins, cheeses, and extras.  This seems like it is stuffing too much -- well, stuffings -- into one container.
I might write:
BREAD_PRICE = {'white':2.00, 'wheat': 2.50, 'sour dough': 3.00}
PROTEIN_PRICE = {'chicken': 2.50, 'turkey': 2.25, 'ham': 1.75, 'tofu': 4.00}
CHEESE_PRICE = {'cheddar': 1.00, 'swiss' : 1.25, 'mozzarella' : 2.00}
EXTRA_PRICE = {'mayo': 0.25, 'mustard': 0.25, 'lettuce': 0.30, 'tomato': 0.50}

With the bread, protein, and cheese options, you could now write a common function:
def get_sandwich_choice(category, options):
    prompt = &quot;Please choose your &quot; + category + &quot;:\n&quot;
    choices = list(options.keys())
    choice = pyip.inputMenu(choices, prompt, lettered=True)
    return choice

bread_choice = get_sandwich_choice('bread', BREAD_PRICE)
protein_choice = get_sandwich_choice('protein', PROTEIN_PRICE)
...

The price containers are all really the same kind of things, just in groups.  So one might instead ...
PRICE = {'bread': {'white':2.00, 'wheat': 2.50, 'sour dough': 3.00},
         'protein': {'chicken': 2.50, 'turkey': 2.25, 'ham': 1.75, 'tofu': 4.00},
         'cheese': {'cheddar': 1.00, 'swiss' : 1.25, 'mozzarella' : 2.00},
         'extras': {'mayo': 0.25, 'mustard': 0.25, 'lettuce': 0.30, 'tomato': 0.50},
         }

and the choices could be fetched with:
bread_choice = get_sandwich_choice('bread', PRICE['bread'])
protein_choice = get_sandwich_choice('protein', PRICE['protein'])
...

You could expand this further by adding more data.  bread is choice, protein is a choice, cheese is an optional choice, extras are optionals.  Based on the category type, you could call the appropriate user input functions.  The prompt for each category could be customized, and so on.  To add this extra data, I'd look into @dataclass.
Are all things in customerOrder the same?  The bread is kind of unique; you need two slices for the sandwich.  The extras might eventually have options like &quot;light on the mayo&quot; or &quot;heavy on the mustard&quot;, where as you can't ask for extra bread.  So it might make more sense keeping them separate.  bread_choice, protein_choice, cheese_choice, and a list of extras.  This also helps our cost, since the prices are in different containers.
def sandwich_cost(bread, protein, cheese, extras):
    cost = PRICE['bread'][bread] + PRICE['protein'][protein]
    if cheese:
        cost += PRICE['cheese'][cheese]
    for extra in extras:
        cost += PRICE['extra'][extra]

sandwich_total = sandwich_cost(bread_choice, protein_choice, cheese_choice, extras)

Again, a @dataclass may be useful in construction a sandwich object.
By having a separate function for computing the sandwich cost, you make your code testable.  For example, you could check:
assert sandwich_cost('white', 'tofu', 'cheddar', ['tomato']) == 7.50
assert sandwich_cost('white', 'tofu', '', []) == 6.00

Look into unittest for better ways of writing test code.
Main Guard
It is a good habit to move your code into functions, and call it from inside a &quot;main guard&quot; at the end of the code.  Eg)
import pyinputplus as pyip

... helper functions here ...

def main():
    ... code here ...

if __name__ == '__main__':
    main()

Summary
Lots of ways to improve this code.  I've touched on a few.  Experiment, and once you've got something working, post a new followup question for further advice.