Script that helps people make better choices
I think your program would be easier to use and create if you rearrange when you ask your questions. (This is mostly to show that I have consciously changed how your program works)
You are correct it would be easier to use your data if you enter it as a dictionary and some lists. I personally would use the following layout:

option_1 = {
    'option': option1,
    'reasons': [option1a, option1b, option1c],
    'weights': [option1aw, option1bw, option1cw],
}


This allows getting the relevant by indexing the objects.
For example to get the entered option you can do:

option_1['option']


To get the first reason you can do:

option_1['option'][0]


It should be noted that lists in Python, and most programming languages, are indexed starting at 0, which is why to get the first value we see the 0 above.
Reduce your workload by using functions, these allow you to define a set of instructions to run which you can then reuse by calling the function.

Take the following function to get an option:
Note: I have changed the questions in this code snippet.

def get_option():
    return {
        'option': input('Enter an option: '),
        'reasons': [
            input(f'Option 1: Why is this a good option? '),
            input(f'Option 2: Why is this a good option? '),
            input(f'Option 3: Why is this a good option? '),
        ],
        'weights': [
            int(input(f'How important is Option 1? (from 1-5) ')),
            int(input(f'How important is Option 2? (from 1-5) ')),
            int(input(f'How important is Option 3? (from 1-5) ')),
        ]
    }

Allowing a user to enter two options is now simple. You make a list with both of them.

options = [
    get_option(),
    get_option(),
]

Before we go any further I'd like to show you my favorite feature of Python - list comprehensions. These allow you to perform a task on a list in a single line. Take the above code snippet to generate two options, we can rewrite that using standard list generation methods exposed in Python and other languages, which would look like:

options = []  # Build an empty list
for _ in range(2):  # Loop twice
    options.append(get_option())  # Add an option to options on each loop


However this pattern is rather messy and it would be more Pythonic to use a comprehension here.

options = [
    get_option()
    for _ in range(2)
]


You should be able to notice we can also use this to simplify our get_option code.

def get_option():
    return {
        'option': input('Enter an option: '),
        'reasons': [
            input(f'Reason {i+1}: Why is this a good option? ')
            for i in range(3)
        ],
        'weights': [
            int(input(f'How important is Reason {i+1}? (from 1-5) '))
            for i in range(3)
        ]
    }

From here we can change your option1result and option2result to:

results = [sum(option['weights']) for option in options]

You can use random.choice to chose from a list.
It is best practice to use an if __name__ == '__main__': guard to prevent your code from running unless it's the main program.
Don't use quit, if you remove it the program will exit successfully.




import random


def get_option():
    return {
        'option': input('Enter an option: '),
        'reasons': [
            input(f'Reason {i+1}: Why is this a good option? ')
            for i in range(3)
        ],
        'weights': [
            int(input(f'How important is Reason {i+1}? (from 1-5) '))
            for i in range(3)
        ]
    }


if __name__ == '__main__':
    print('First, tell me what your options are.')
    options = [
        get_option()
        for _ in range(2)
    ]
    prompt = input('\nWe will calculate now.\n')

    results = [sum(option['weights']) for option in options]
    if results[0] == results[1]:
        input('There are multiple best options.\nThe best will be determined by coinflip.\n')
        best_option = random.choice(options)
    else:
        best_option = options[0] if results[0] &gt; results[1] else results[1]

    print('Your best choice is:')
    print(options[0]['option'])


Additional improvements:


Your code only currently works for two options. To get the top options for any amount of options is fairly simple.

You want a dictionary that holds all the options with a certain total weight. After this you just want to take the max weight, which will give you all the options with that weight.

Once you have have the best options the code is pretty much the same, if there are multiple options then you just use random.choice on them to narrow them down to one.
You should allow your user to enter how many options and reasons they want. This now is just a simple question you can ask before entering either loop.
The way you get user input is error prone, if I enter a as my weight then your code blows up.
You should also take into account that you've told your user that only 1-5 are valid entries, but happily allow -1, and 6.
Not displaying all the best options seems like a poor oversight. Since we know all the best options we can just display them by looping.


Ignoring 3 this can get:

import random


def get_option():
    option = input('Enter an option: ')
    reasons = int(input('How many reasons do you have for this option? '))
    return {
        'option': option,
        'reasons': [
            input(f'Reason {i+1}: Why is this a good option? ')
            for i in range(reasons)
        ],
        'weights': [
            int(input(f'How important is Reason {i+1}? (from 1-5) '))
            for i in range(reasons)
        ]
    }


def get_top_options(options):
    rankings = {}
    for option in options:
        rankings.setdefault(sum(option['weights']), []).append(option)
    return rankings[max(rankings)]


if __name__ == '__main__':
    amount_options = int(input('How many options are there? '))
    options = [
        get_option()
        for _ in range(amount_options)
    ]
    prompt = input('\nWe will calculate now.\n')

    best_options = get_top_options(options)
    if len(best_options) == 1:
        print('Your best choice is:')
    else:
        print('Your best choices are:')
    for option in best_options:
        print(option['option'])